#ifndef TIEC_RESOURCE_H
#define TIEC_RESOURCE_H

#include "macro.h"
#include "data.h"

namespace NS_TIEC {
  /// 编译器的资源管理器
  class Resources {
  public:
    /// 通过key获取指定字符串
    /// \param key 键名
    static const char* getChars(const char* key);

    /// 通过key获取指定字符串并进行格式化
    /// \param key 键名
    /// \param ... 格式化参数
    static const char* getFormatChars(const char* key, ...);

    /// 通过key获取指定字符串
    /// \param key 键名
    static String getString(const char* key);

    /// 通过key获取指定字符串并进行格式化
    /// \param key 键名
    /// \param ... 格式化参数
    static String getFormatString(const char* key, ...);

    /// 添加一个String资源
    /// \param name 名称
    /// \param value 对应的值
    static void putString(const char* name, const char* value);
  private:
    static HashMap<const char*, const char*> string_map_;

    static void initDefaultStrings();
  };
}

#endif //TIEC_RESOURCE_H
